home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PCMania 30
/
PCMania CD30.iso
/
postumum
/
pcapsys
/
cutpic.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1994-11-16
|
3KB
|
91 lines
(* Programa codificado por : *)
(* Francesc Casanovas *)
(* Ripness / Postumum (c) - 1.994 *)
(* en Turbo Pascal v6.0 *)
Program CutPic;
(*
Con este programa podremos recortar nuestros ficheros de imagen Bitmap
en la posicion en la que realmente acaba la imagen para que no ocupe mas
espacio que el necesario.
*)
Uses Crt,Dos,CapSys;
Type
Paleta = Array [0..255,0..2] Of Byte;
Var
Pantalla : Pointer;
Paleta1 : Paleta;
Imagen,imagen2 : String;
Panta : File;
panta2 : File;
cortar : word;
Procedure Corta_Pantalla (fichero,fichero2 : String );
Var A : Byte;
Begin
Assign (Panta,Fichero); { Abrimos los ficheros para lectura y para }
Assign (Panta2,Fichero2); { escritura }
Reset (Panta,1);
Rewrite (Panta2,1);
Blockread (Panta,Pantalla^,cortar+768); { Leemos los bytes indicados}
BlockWrite (panta2,pantalla^,cortar+768); { en la pregunta y luego los }
Close (Panta); { escribimos en el fichero de }
Close (Panta2); { salida }
End;
{ ********************* MAIN ******************************* }
Begin
Getmem (Pantalla,64000); { Reservamos memoria para la imagen que }
{ vamos a leer }
{ Comprobamos que se haya pasado bien el parametro (nombre del fichero }
{ y que ademas exista }
If ParamCount < 1 Then
Begin
WriteLn;
WriteLn ('Error, faltan parametros..... Uso VerPan < nombre de fichero > ');
CursorOn;
Halt;
End;
Imagen := ParamStr(1);
if (Pos ('.', imagen) = 0) then
Imagen := Concat (imagen, '.pic');
If Not Exist (Imagen) Then
Begin
WriteLn;
WriteLn (' Fichero no existente ');
CursorOn;
Halt;
End;
{ Preguntas referentes al nombre que queremos dar al fichero de salida }
{ y la posicion hasta la cual queremos recortar }
Write ('Desde la posicion 0 hasta donde quieres cortar ? ' );
Readln (cortar);
GotoXy (1,Wherey+1);
Write ('Que nombre quieres darle al fichero de salida ? ' );
ReadLn (imagen2);
CursorOff; { Desactivamos el cursor }
GotoXy (1,Wherey+1);
WriteLn ('Grabando ..... ');
Corta_pantalla (Imagen,imagen2); { Llama a la funcion principal }
GotoXy (1,Wherey+1);
WriteLn ('Fichero ya grabado ');
CursorOn;
End.